public static CharToByteConverter getConverter(String var0) throws UnsupportedEncodingException {
Object var1 = Converters.newConverter(1, var0);
return (CharToByteConverter)var1;
}
public abstract String getCharacterEncoding();
public abstract int convert(char[] var1, int var2, int var3, byte[] var4, int var5, int var6) throws MalformedInputException, UnknownCharacterException, ConversionBufferFullException;
public int convertAny(char[] var1, int var2, int var3, byte[] var4, int var5, int var6) throws ConversionBufferFullException {
if (!this.subMode) {
throw new IllegalStateException("Substitution mode is not on");
} else {
int var7 = var2;
int var8 = var5;
while(var7 < var3) {
try {
this.convert(var1, var7, var3, var4, var8, var6);
return this.nextByteIndex() - var5;
} catch (MalformedInputException var13) {
byte[] var10 = this.subBytes;
int var11 = var10.length;
var8 = this.nextByteIndex();
if (var8 + var11 > var6) {
throw new ConversionBufferFullException();
}
for(int var12 = 0; var12 < var11; ++var12) {
var4[var8++] = var10[var12];
}
var7 = this.nextCharIndex();
var7 += this.badInputLength;
this.badInputLength = 0;
if (var7 >= var3) {
this.byteOff = var8;
return this.byteOff - var5;
}
} catch (UnknownCharacterException var14) {
throw new Error("UnknownCharacterException thrown in substititution mode", var14);
}
}
return this.nextByteIndex() - var5;
}
}
public byte[] convertAll(char[] var1) throws MalformedInputException {
this.reset();
boolean var2 = this.subMode;
this.subMode = true;
byte[] var3 = new byte[this.getMaxBytesPerChar() * var1.length];
byte[] var6;
try {
int var4 = this.convert(var1, 0, var1.length, var3, 0, var3.length);